package pers.cz.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import pers.cz.model.NotifyMessage;
import pers.cz.model.NotifyMessageExample;

import java.util.Date;
import java.util.List;

import pers.cz.mybatisPlugin.PageRowBounds;
import org.apache.ibatis.annotations.Param;

public interface NotifyMessageMapper {
    int countByExample(NotifyMessageExample example);

    int deleteByExample(NotifyMessageExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(NotifyMessage record);

    int insertSelective(NotifyMessage record);

    List<NotifyMessage> selectByExample(NotifyMessageExample example);

    NotifyMessage selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") NotifyMessage record, @Param("example") NotifyMessageExample example);

    int updateByExample(@Param("record") NotifyMessage record, @Param("example") NotifyMessageExample example);

    int updateByPrimaryKeySelective(NotifyMessage record);

    int updateByPrimaryKey(NotifyMessage record);

    @DS("dev")
    List<NotifyMessage> queryAllNotifyMessage(PageRowBounds pageRowBounds, Integer userId);

    List<NotifyMessage> queryAllNotifyMessageByType(PageRowBounds pageRowBounds, Integer userId, String type);

    List<NotifyMessage> queryAllNotifyMessageByMessageType(PageRowBounds pageRowBounds, Integer userId, String messageType);

    List<NotifyMessage> selectByCodition(Integer userId, String messageType, String type, Date startDate, Date endDate, String theme);

    Integer quertNotifyMessageCount(int userId, String type);

    Integer updateMessageTypeAllByUserId(Integer userId, String type);
}
